#ifndef TEXTURE_FACTORY_H
#define TEXTURE_FACTORY_H

#include "Include.h"
#include "Texture.h"
#include "RenderTarget.h"
#include "DepthBuffer.h"


namespace devii
{

class TextureFactory
{
	typedef std::map<std::string, Texture*> TextureMap;
public:
	TextureFactory();
	~TextureFactory();


	bool startup();
	bool shutdown();

	void addTexture(Texture* const texture); 

	Texture* createTexture(const std::string& path, const std::string& file);

	void addRenderTarget(RenderTarget* const render_target);

	void addDepthBuffer(DepthBuffer* const depth_buffer);

private:
	std::vector<Texture*> textures;
	std::vector<RenderTarget*> render_targets;
	std::vector<DepthBuffer*> depth_buffers;
};

}
#endif